public class TestNoddle {
	public static void main(String[] args) {
		//因为已经编写了一个带参数的构造函数，java就不会再创建不带参数的构造函数了
//		RiceNoddle rn1 = new RiceNoddle();
		//rn1.bowlType = "中碗";
		//rn1.moreMeat = true;
		RiceNoddle rn1 = new RiceNoddle("大碗",false);
		rn1.show();
		RiceNoddle rn2 = new RiceNoddle();
		
	}
}

//创建对象的时候使用 new RiceNoddle()其实是调用类的构造函数
/*
 * 构造函数必须和类名完全一致，大小写都要一样
 * 构造函数不写返回值，连void都不写
 * 当开发人员没有写任何构造函数的时候，java的虚拟机会自动创建一个不带参数的构造函数，并且什么都不做
 * 如果开发人员手动编写了构造函数之后，java的虚拟机就不会再创建不带参数的构造函数了
 * 构造函数存在的意义就是在创建对象的时候进行值的初始化
 * Java里面函数是可以重名的，但是重名函数参数类型不能相同
 * 重名的函数称为函数的重载
 * 
 * fn(int a,int b ){} fn(String a,int b){}; fn("1",2)
 * fn(int a,int b){} fn(int a,int b,int c){};
 * fn(String a,int b) fn(int a,String b){}; fn("1",1);
 * fn(String a,String b){} fn(String username,String password){};
 * fn("abc","ddd");//最后一个没有形成函数的重载
 * */
class RiceNoddle {
	String bowlType;
	boolean moreMeat;
	int price;
	
	public RiceNoddle() {
		
	}
	
	public RiceNoddle(String bowlType,boolean moreMeat) {
		this.bowlType = bowlType;
		this.moreMeat = moreMeat;
		System.out.println("米线被构造");
	}
	
	public void show() {
		String msg = "一碗"+bowlType;
		price = 10;
		if(bowlType=="中碗") {
			price+=1;
		} else if(bowlType=="大碗") {
			price+=2;
		}
		if(moreMeat) {
			msg+="加肉的";
			price+=10;
		} else {
			msg+="不加肉的";
		}
		msg+="羊肉米线上桌了,价格"+price+"元";
		System.out.println(msg);
	}
}
